home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / comm2 / zpont311.lha / zpoint-3.11 / Rexx / AddressMachine.zprx < prev    next >
Text File  |  1995-03-09  |  9KB  |  227 lines

  1. /*****************************************************************************
  2.  *  $VER:AddressMachine.zprx 1.1 (08 Okt 1994), Stephan Hellwig              *
  3.  *  EMail: Stephan_H@istda.north.de bzw. Stephan_H@cli.sh.sub.de             *
  4.  *                                                                           *
  5.  *  Arexx-Script für die Zusammenarbeit zwischen dem AddressMaster von       *
  6.  *  Jan Geißler und Zodiac's Point von Ralph Seichter.                       *
  7.  *                                                                           *
  8.  *  AddressMachine.zprx ermöglicht das Verwalten der Adresseinträge von      *
  9.  *  ZPoint mittels des AddressMasters (ADM), einschl. aller damit            *
  10.  *  verbundenen Vorteile. So ist es z.B. möglich jeder Netzadresse eine      *
  11.  *  Telefonnummer, Anschrift, usw. zuzuordnen!                               *
  12.  *                                                                           *
  13.  *  Installation:                                                            *
  14.  *  Aufruf als Menüeintrag bzw. F-Taste (siehe ZPoint-Dokumentation!).       *
  15.  *  z.B. so.: Rexxc:rx ZP:Rexx/AddressMachine.zprx <Kommando> %s         *
  16.  *                                                                           *
  17.  *  AddressMachine akzeptiert zur Zeit eines der folgenden Kommandos:        *
  18.  *                                                                           *
  19.  *  ADD      Exportiert die aktuelle Adresse aus ZPoint zum AddressMaster.   *
  20.  *           Die Adressliste wird hierbei automatisch auf doppelte Einträge  *
  21.  *           abgesucht. Bestehende Einträge können auf Wunsch ergänzt werden *
  22.  *                                                                           *
  23.  *  SAVE     Erstellt die aktuelle Adressliste (alias.zp) für ZPoint aus der *
  24.  *           unter Addresslist eingegebenen Adressdatei. Dies ist sowohl aus *
  25.  *           ZPoint als auch aus dem ADM möglich.                            *
  26.  *****************************************************************************/
  27.  
  28. OPTIONS RESULTS
  29.  
  30. /*----------------------- ADDRESSMACHINE KONFIGURATION ----------------------*/
  31.  
  32.                 /* In welchem *Verzeichniss* ist ZPoint installiert? Bitte
  33.                  den gültigen DOS-Pfad eingeben, z.B.: dh3:dfue/zpoint/      */
  34. ZPoint        = "ZP:"
  35.  
  36.                 /* Es ist möglich die von AddressMachine erstellte
  37.                    Alias-Liste unter anderem Namen zu speichern. Dies ist
  38.                    aber nur in Ausnahmefällen nötig. AddressMachine erstellt
  39.                    Backups von ihrer alias.zp-Datei!                         */
  40. Aliasname     = "alias.zp"
  41.  
  42.                 /* In welchem *Verzeichniss* ist der AddressMaster (ADM)
  43.                  installiert?  Bitte  den  gültigen  DOS-Pfad
  44.                  eingeben, z.B.: dh0:Tools/AddressMaster/                    */
  45. AddressMaster = "ADM:"
  46.  
  47.                 /*welche ADM-Adressdatei soll verwendet werden? Es kann
  48.                  eine Bestehende ergänzt werden oder eine Neue erstellt
  49.                  werden. Zum Ergänzen einer Datei bitte den kompletten
  50.                  DOS-Pfad angeben!                                           */
  51. Addresslist   = "ADM:Adressen/mail.adr"
  52.  
  53.                 /*ADM erlaubt das Setzen eines UserFlag's. Hier können sie
  54.                   angeben welches automatisch gesetzt werden soll. Die
  55.                   Benutzung des UserFlag's können sie in der Dokumentation zu
  56.                   ADM nachlesen! AdmFlag = "0" schaltet diese Funktion ab.   */
  57. AdmFlag       = "0"
  58.  
  59. /*------------------------------- HAUPTPROGRAMM -----------------------------*/
  60. /*                      (ab hier bitte nichts mehr ändern!)                  */
  61.  
  62. IF ~SHOW("LIB","rexxreqtools.library") THEN DO
  63.   IF ~ADDLIB("rexxreqtools.library",0,-30,0) | ~EXISTS("LIBS:rexxreqtools.library") THEN DO
  64.     SAY "AddressMachine.zprx: Kann rexxreqtools.library nicht öffnen"
  65.     EXIT(10)
  66.   END
  67. END
  68.  
  69. IF ZPoint = "" THEN SAY "AddressMachine.zprx: fehlender Parameter 'ZPoint'..."
  70. IF AddressMaster = "" THEN SAY "AddressMachine.zprx: fehlender Parameter 'AddressMaster'..."
  71. IF AdmFlag = "" THEN AdmFlag = "0"
  72.  
  73. Aliaslist = (ZPoint"Bretter/"Aliasname)
  74.  
  75. PARSE ARG Kommando ZPRexxPort
  76.  
  77. IF ZPRexxPort = "" THEN ZPRexxPort = "ZPoint"
  78. ZPRexxPort = SPACE(ZPRexxPort,0)
  79.  
  80. IF UPPER(Kommando) = "SAVE" THEN CALL SAVE
  81. IF UPPER(Kommando) = "ADD"  THEN CALL ADD
  82. IF UPPER(Kommando) = "" THEN SAY "AddressMachine.zprx: Keine Kommandos übergeben..."
  83. EXIT
  84.  
  85. /*----------------------------- UNTERPROGRAMM "ADD"  ------------------------*/
  86.  
  87. ADD:
  88.   ADDRESS (ZPRexxPort)
  89.   WHICHLEVEL
  90.   IF (RESULT ~= "BOARD") THEN DO
  91.     EXIT
  92.   END
  93.  
  94.   MESSAGEINFO AUTHOR
  95.   Author = RESULT
  96.   res = WORDS(Author)
  97.  
  98.   IF res > 2 THEN DO
  99.     Nachname = DELSTR((DELWORD(Author,1,((WORDS(Author))-1))),(LENGTH((DELWORD(Author,1,((WORDS(Author))-1))))),1)
  100.     Vorname  = DELSTR((SUBWORD(Author,2,(WORDS(Author)-2))),1,1)
  101.   END
  102.   IF res < 3 THEN DO
  103.     Nachname = Author
  104.     Vorname  = " "
  105.   END
  106.  
  107. CALL ADM()
  108.   ADDRESS "ADM.1"
  109.   ADM.LASTNAME  = Nachname
  110.   ADM.FIRSTNAME = Vorname
  111.   SEARCH 1 ADM
  112.   res = RESULT
  113.  
  114.   IF res =-1 THEN CALL AddAddress()
  115.   IF res >-1 THEN DO
  116.     DISPLAY
  117.     CALL Requester()
  118.     ReqText_Print = "Eintrag " UPPER(Vorname) UPPER(Nachname) " schon vorhanden!"
  119.     CALL rtezrequest(ReqText_Print,"Ergänze Eintrag|Neuer Eintrag|Abbruch","AddressMachine.zprx-Request",ReqTags_Print)
  120.     erg = RESULT
  121.     IF erg = 1 THEN CALL ChangeAddress()
  122.     ELSE IF erg = 2 THEN CALL AddAddress()
  123.     ELSE IF erg = 0 THEN DO
  124.       QUIT
  125.       EXIT
  126.     END
  127.   END
  128.  
  129.   IF res <-1 THEN DO
  130.     ADDRINMEM
  131.     anz = RESULT
  132.     IF anz = 0 THEN CALL AddAddress()
  133.     ELSE SAY "AddressMachine.zprx: Ein fataler Fehler im AddressMaster ist aufgetreten..."
  134.   END
  135. RETURN
  136.  
  137. /*---------------------------- UNTERPROGRAMM "SAVE"  ------------------------*/
  138.  
  139. SAVE:
  140.   CALL ADM()
  141.   ADDRESS "ADM.1"
  142.   ADDRINMEM
  143.   ANZ = RESULT
  144.  
  145.   IF EXISTS(Aliaslist) THEN ADDRESS COMMAND "copy >NIL: "Aliaslist" TO T:adm.temp QUIET"
  146.   ok = OPEN('Tempfile',"T:"Aliasname,'W')
  147.   ok = WRITELN('Tempfile',";Aliasliste erstellt mit AddressMachine von Stephan Hellwig")
  148.  
  149.   DO N = 1 TO ANZ
  150.     ACTIVATE N
  151.     IF RC = -1 THEN DO
  152.       SAY "AddressMachine.zprx: Keine Adressen vorhanden..."
  153.       EXIT(10)
  154.     END
  155.     GETADDRESS ADM
  156.     IF ADM.EMAIL1 > "" THEN DO
  157.       ok = WRITELN('Tempfile',"N:" || ADM.LASTNAME || ", " ||ADM.FIRSTNAME)
  158.       ok = WRITELN('Tempfile',"A:" || ADM.EMAIL1)
  159.       ok = WRITELN('Tempfile',"-")
  160.     END
  161.     IF ADM.EMAIL2 > "" THEN DO
  162.       ok = WRITELN('Tempfile',"N:" || ADM.LASTNAME || ", " ||ADM.FIRSTNAME)
  163.       ok = WRITELN('Tempfile',"A:" || ADM.EMAIL2)
  164.       ok = WRITELN('Tempfile',"-")
  165.     END
  166.   END
  167.  
  168.   IF EXISTS(Aliaslist) THEN DO
  169.     ck = OPEN('Check',Aliaslist,'R')
  170.     ck = READCH('Check',39)
  171.     IF ck ~== ";Aliasliste erstellt mit AddressMachine von Stephan Hellwig" THEN DO
  172.       ck = CLOSE('Check')
  173.       ADDRESS COMMAND "copy "Aliaslist "TO" Aliaslist".org"
  174.     END
  175.     ELSE DO
  176.       ck = CLOSE('Check')
  177.     END
  178.     CALL Requester()
  179.     ReqText_Print = "Datei "UPPER(Aliasname)" existiert schon!" || "0A"x || "Soll sie überschrieben werden?"
  180.     CALL rtezrequest(ReqText_Print,"Überschreiben|Backup|Abbruch","AddressMachine.zprx-Request",ReqTags_Print)
  181.     erg = RESULT
  182.     IF erg = 0 THEN EXIT
  183.     IF erg = 1 THEN ADDRESS COMMAND "delete "Aliaslist" QUIET"
  184.     IF erg = 2 THEN DO
  185.       IF EXISTS(Aliaslist".bak")THEN ADDRESS COMMAND "delete "Aliaslist".bak QUIET"
  186.       ADDRESS COMMAND "rename "Aliaslist" AS "Aliaslist".bak QUIET"
  187.       END
  188.     END
  189.  
  190.   ok = CLOSE('Tempfile')
  191.   ADDRESS COMMAND "copy T:"Aliasname" TO "Aliaslist
  192.   ADDRESS COMMAND "delete T:"Aliasname" QUIET"
  193. RETURN
  194.  
  195. /*------------------------------ DIE PROZEDUREN -----------------------------*/
  196.  
  197. ADM:
  198.   IF ~SHOW("P","ADM.1")THEN DO
  199.     IF ~ EXISTS(AddressMaster"AddressMaster")THEN DO
  200.       SAY "AddressMachine.zprx: Kann AddressMaster nicht starten..."
  201.       EXIT(20)
  202.     END
  203.     IF EXISTS(Addresslist) THEN ADDRESS COMMAND "run >NIL:" AddressMaster"AddressMaster" Addresslist" PUBSCREEN="ZPRexxPort "CLOSEQUIT"
  204.     ELSE ADDRESS COMMAND "run >NIL:" AddressMaster"AddressMaster PUBSCREEN="ZPRexxPort "CLOSEQUIT"
  205.     END
  206.   ADDRESS COMMAND "WAITFORPORT ADM.1"
  207. RETURN
  208.  
  209. Requester:
  210.   ReqTags_Print = "rt_reqpos=reqpos_centerscr rt_pubscrname="ZPRexxPort" rt_lockwindow=TRUE rtez_flags=ezreqf_centertext"
  211. RETURN
  212.  
  213. AddAddress:
  214.   ADM.EMAIL1 = Author
  215.   ADM.FLAGS  = AdmFlag
  216.   NEWADDRESS ADM
  217.   DISPLAY
  218. RETURN
  219.  
  220. ChangeAddress:
  221.   GETADDRESS RESAD
  222.   RESAD.EMAIL1 = Author
  223.   RESAD.FLAGS  = AdmFlag
  224.   CHANGEADDRESS RESAD
  225.   DISPLAY
  226. RETURN
  227.